package com.jixi.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jixi.common.result.PageResult;
import com.jixi.common.result.Result;
import com.jixi.pojo.dto.AccountAddDto;
import com.jixi.pojo.entity.Account;

public interface AccountService extends IService<Account> {
    
    /**
     * 新增账户
     *
     * @param accountAddDto 新增账户信息
     * @return 新增结果
     */
    Result addAcount(AccountAddDto accountAddDto);
    
    /**
     * 账户列表
     *
     * @param pageNum         页码
     * @param pageSize        每页数量
     * @param accountType     银行类型
     * @param accountBankId   账户卡号
     * @param accountNickname 账户昵称
     * @param status          状态
     * @return 账户列表
     */
    Result<PageResult> accountPage(Integer pageNum, Integer pageSize, String accountType, String accountBankId, String accountNickname, Integer status, Long educationId);
    
    /**
     * 账户详情
     *
     * @param accountId 账户id
     * @return 账户详情
     */
    Account getAcountInfo(Long accountId);
    
    /**
     * 账户修改
     *
     * @param accountId       账户id
     * @param accountNickname 账户昵称
     * @param remark          备注
     * @param status          状态
     * @param educationId     教育局id
     * @return 修改结果
     */
    Result updateAccountById(Long accountId, String accountNickname, String remark, Integer status, Long educationId);
    
    /**
     * 账户状态修改
     *
     * @param accountId 账户id
     * @param status    状态
     * @return 修改结果
     */
    Result updateAccountStatus(Long accountId, Integer status);
    
    /**
     * 账户删除
     *
     * @param accountId 账户id
     * @return 删除结果
     */
    Result deleteAccountById(Long accountId);
}
